package com.example.bigwork.service;

import com.example.bigwork.dto.request.UserLoginRequest;
import com.example.bigwork.dto.request.UserRegisterRequest;
import com.example.bigwork.dto.request.UserUpdateRequest;
import com.example.bigwork.dto.response.AuthResponse;
import com.example.bigwork.dto.response.UserResponse;
import com.example.bigwork.entity.User;
import org.springframework.security.core.userdetails.UserDetails;

public interface UserService {
    UserResponse registerUser(UserRegisterRequest registerRequest);
    AuthResponse loginUser(UserLoginRequest loginRequest);
    UserResponse getUserById(Long id);
    UserResponse updateUser(Long id, UserUpdateRequest updateRequest);
    // Internal helper
    User findUserEntityById(Long id);
    UserDetails loadUserByUsername(String username);
    User findUserEntityByUsername(String username);
}